Skip to content

fix(jwt): reject empty JWT-SVID audiences#431

Merged
maxlambrecht merged 3 commits into
spiffe:mainfrom
maxlambrecht:fix/jwt-svid-empty-audience
Jul 23, 2026
Merged

fix(jwt): reject empty JWT-SVID audiences#431
maxlambrecht merged 3 commits into
spiffe:mainfrom
maxlambrecht:fix/jwt-svid-empty-audience

Conversation

@maxlambrecht

Copy link
Copy Markdown
Member

What

Reject empty expected audience sets in JWT-SVID validation for both JwtSvid.parseAndValidate(...) and JwtSvid.parseInsecure(...).

Why

Passing an empty expected audience set previously caused audience validation to succeed because containsAll(emptySet()) is always true. This was a failure-open behavior in a security-sensitive validator.

This is an observable behavior change: empty expected audiences now throw IllegalArgumentException("audience cannot be empty").

How tested

Ran the focused JWT-SVID validation tests:

./gradlew :java-spiffe-core:test --tests 'io.spiffe.svid.jwtsvid.JwtSvidParseAndValidateTest' --tests 'io.spiffe.svid.jwtsvid.JwtSvidParseInsecureTest'

@maxlambrecht
maxlambrecht requested a review from rturner3 as a code owner May 9, 2026 19:23
@maxlambrecht
maxlambrecht force-pushed the fix/jwt-svid-empty-audience branch from b6d2e49 to 4bc8a79 Compare May 9, 2026 20:37
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
@maxlambrecht
maxlambrecht force-pushed the fix/jwt-svid-empty-audience branch from 4bc8a79 to ca7a52a Compare July 18, 2026 20:36
@maxlambrecht
maxlambrecht merged commit a59b892 into spiffe:main Jul 23, 2026
8 checks passed
@maxlambrecht
maxlambrecht deleted the fix/jwt-svid-empty-audience branch July 23, 2026 15:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants